<?php
/**
 * Esta classe visa comunicão entre o banco de dados e o sistema para tudo que
 * envolve login.
 * @category   Application
 * @package    Dao
 * @copyright  Copyright (c) 2012 FencerWeb
 * @version $Id$
 */
require_once 'Zend/Db/Table/Abstract.php';
Class Application_Model_Dao_Login extends Fencer_Db_Table{
	
	protected $_schema   = 'seguranca';
	protected $_name     = 'tb_usuario';
	protected $_sequence = true;
	protected $_primary  = array('cod_usuario');
	
	/**
	 * 
	 * Método responsável por validar os dados de login do usuário
	 * @param $dados
	 * @return array
	 */
	public static function login($dados){
        $db      = Zend_Db_Table::getDefaultAdapter();
        $adapter = new Zend_Auth_Adapter_DbTable($db);
        
        $adapter->setTableName('seguranca.tb_usuario')
		        ->setIdentityColumn('num_cpf_pessoa')
		        ->setCredentialColumn('vlr_senha')
		        ->setIdentity($dados["num_cpf_pessoa"])
		        ->setCredential($dados["vlr_senha"]);
        
        $auth   = Zend_Auth::getInstance();
        $result = $auth->authenticate($adapter);

        if($result->isValid()){
        	
        	$dados = Application_Model_Usuario::getDadosUsuario($result->getCode());
        	
        	unset($dados['cod_pessoa']);
        	unset($dados['vlr_senha']);
        	unset($dados['num_tentativa']);
        	unset($dados['dat_ultimo_acesso']);
        	unset($dados['flg_bloqueio']);
        	unset($dados['num_cpf_pessoa']);
        	
        	$auth->getStorage()->write($dados);
        	
        	return true;
        }else{
        	$session = Fencer_Utils::getZendSession();
        	$session->mensagem = "<strong>Login e/ou senha inválido(s).</strong>";
        	return false;
        }

	}
}